{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "ab584096",
   "metadata": {},
   "source": [
    "# 差分方程和零极点图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "6ff7edbd",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[array([0., 0.]), array([-0.85+0.16583124j, -0.85-0.16583124j]), 0.05]\n",
      "[array([0.05, 0.  , 0.  ]), array([1.  , 1.7 , 0.75])]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from scipy import signal\n",
    "from matplotlib.patches import Circle\n",
    "\n",
    "b=[0.05, 0, 0]# numerator\n",
    "a=[1, 1.7, 0.75]# denominator\n",
    "\n",
    "[z,p,k]=signal.tf2zpk(b,a)#由系统函数求取零、极点用来实现差分方程\n",
    "print([z,p,k])\n",
    "\n",
    "[c,d]=signal.zpk2tf(z,p,k)#由零、极点求系统函数分子分母系数\n",
    "print([c,d])\n",
    "\n",
    "theta = np.pi*2\n",
    "r=np.abs(p[0])\n",
    "ax=plt.subplot( )\n",
    "circle1 = Circle((0.0, 0.0), radius = 1, alpha = 0.2, color = 'blue')#单位圆\n",
    "ax.add_artist(circle1)\n",
    "\n",
    "circle=Circle((0.0,0.0),r,transform=ax.transData._b,color=\"pink\",alpha=0.2)\n",
    "ax.add_artist(circle)\n",
    "\n",
    "ax.add_patch(circle)\n",
    "for i in p:\n",
    "    ax.plot(np.real(i),np.imag(i),'bx')    #pole before quantization\n",
    "for i in z:\n",
    "    ax.plot(np.real(i),np.imag(i),'bo')     #zero before quantization\n",
    "\n",
    "ax.set_xlim(-1.8,1.8)\n",
    "ax.set_ylim(-1.2,1.2)    \n",
    "ax.grid()\n",
    "plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签\n",
    "plt.rcParams['axes.unicode_minus'] = False #用来显示负号\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "354962e9",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
